package experiment3choose;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

// 定义 Person 类
class Person {
    private String name;
    private int age;

    // 构造函数
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 获取姓名
    public String getName() {
        return name;
    }

    // 获取年龄
    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + "}";
    }
}

public class ListSortAndFilter {
    public static void main(String[] args) {
        // 创建一个 ArrayList 存储 Person 对象
        List<Person> personList = new ArrayList<>();
        // 添加一些 Person 对象
        personList.add(new Person("Alice", 22));
        personList.add(new Person("Bob", 18));
        personList.add(new Person("Charlie", 25));
        personList.add(new Person("David", 19));
        personList.add(new Person("Eve", 21));

        // 按年龄从大到小对列表进行排序
        personList.sort(Comparator.comparingInt(Person::getAge).reversed());

        // 过滤出年龄大于 20 岁的人
        List<Person> filteredList = personList.stream()
               .filter(person -> person.getAge() > 20)
               .collect(Collectors.toList());

        // 打印过滤后的列表
        System.out.println("年龄大于 20 岁的人（按年龄从大到小排序）：");
        for (Person person : filteredList) {
            System.out.println(person);
        }
    }
}